package com.zbest.zpay.acctrans.share;

import com.zbest.zpay.acctrans.service.model.UserDepositRequest;
import com.zbest.zpay.acctrans.service.model.UserHoldDepositRequest;
import com.zbest.zpay.acctrans.service.model.UserHoldRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldPlatformFeeRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldTransferRequest;
import com.zbest.zpay.acctrans.service.model.UserUnHoldWithdrawRequest;

/**
 * Created by wenfeihu on 16/5/25.
 */
public interface OperationValidateService {

    /**
     * 个人冻结输入参数的有效性
     *
     * @param userHoldRequest
     */
    public void userHold(UserHoldRequest userHoldRequest);

    /**
     * 个人存入输入参数的有效性
     *
     * @param userDepositRequest
     */
    public void userDeposit(UserDepositRequest userDepositRequest);

    /**
     * 个人冻结并存入输入参数的有效性
     *
     * @param userHoldDepositRequest
     */
    public void userHoldDeposit(UserHoldDepositRequest userHoldDepositRequest);


    /**
     * 个人的解冻
     * @param userUnHoldRequest
     */
    public void userUnHold(UserUnHoldRequest userUnHoldRequest);

    /**
     * 私对私解冻并转账
     * @param userUnHoldTransferRequest
     */
    public void userUnHoldTransfer(UserUnHoldTransferRequest userUnHoldTransferRequest);

    /**
     * 个人解冻并支取
     * @param userUnHoldWithdrawRequest
     */
    public void userUnHoldWithdraw(UserUnHoldWithdrawRequest userUnHoldWithdrawRequest);

    /**
     * 平台费用
     * @param userUnHoldPlatformFeeRequest
     */
    public void userUnHoldPlatformFee(UserUnHoldPlatformFeeRequest userUnHoldPlatformFeeRequest);

}
